﻿#pragma once
#ifndef WRPROCQUEUE_H
#define WRPROCQUEUE_H

#include <QMutex>
#include <QQueue>
#include <QRunnable>
#include "WRProcEntry.h"

//表示处理队列。
class WRSOFT_UTILITY_CLASS WRProcQueue : private QRunnable
{
private:
    QQueue<WRProcEntry*> m_queue;
    QMutex m_mutex;
    bool m_status;

    Q_DISABLE_COPY(WRProcQueue)

    //线程池方法调用。
    void run();

public:
    //初始化当前对象。
    WRProcQueue(void);
    //清理当前对象所占用的相关资源。
    ~WRProcQueue(void);

    //取消队列中的所有项目的处理。
    void discard(void);
    //将处理项目添加到队列中以进行处理。
    void process(WRProcEntry* entry);
};

#endif // WRPROCQUEUE_H
